package io;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class FlushDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("bos.txt",true);
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        String str = "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh";
        byte[] data = str.getBytes(StandardCharsets.UTF_8);
        bos.write(data);
         /*
          flush()方法:
          1)将缓冲区中已经缓存的数据一次性写出
          2)flush()方法是所有输出流都具备的方法，因为该方法是在接口Flushable中定义的，
            而输出流的超类OutputStream实现了该接口，所以所有输出流都有flush()方法
          3)但是除了缓冲输出流以外，其它高级流的flush()方法的作用都是为了调用它所连接的流
            的flush()方法，目的是将flush()向下传递，最终传到缓冲输出流上，以做清空缓冲区操作
         */

        bos.flush();
        System.out.println("写出完毕");
    }
}
